Skip to content

Templates: Add optional Central Package Management support to UmbracoProject and UmbracoExtension templates#21641

Merged
AndyButland merged 21 commits intomainfrom
v17/implement-cpm
Feb 26, 2026
Merged

Templates: Add optional Central Package Management support to UmbracoProject and UmbracoExtension templates#21641
AndyButland merged 21 commits intomainfrom
v17/implement-cpm

Conversation

@NguyenThuyLan
Copy link
Copy Markdown
Contributor

@NguyenThuyLan NguyenThuyLan commented Feb 5, 2026

Description
Idea: #21333

  • Adds a --PackageManagement (-P) template parameter with two choices: PerProject(default) and Central, allowing users to opt into
    https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management when scaffolding new projects
  • When "Central" is selected, a Directory.Packages.props file is generated and .csproj package references omit version attributes; when "PerProject" is
    selected (default), the existing behavior is preserved with versions inline in the .csproj
  • Applies to both the UmbracoProject and UmbracoExtension templates, with the extension template additionally enabling
    CentralPackageFloatingVersionsEnabled so extensions can align with the host project's package versions.

Nuget package versions per project
dotnet new umbraco -pm PerProject or dotnet new umbraco-extension -pm PerProject
With Central Package Management (default)
dotnet new umbraco
Extension with CPM (default)
dotnet new umbraco-extension

Test plan

  • Run dotnet new umbraco -pm PerProject and verify no Directory.Packages.props is created, .csproj has versions inline
  • Run dotnet new umbraco (default) and verify Directory.Packages.props is generated, .csproj has no version attributes
  • Run dotnet new umbraco-extension -pm PerProject and verify no Directory.Packages.props is created, .csproj has versions inline
  • Run dotnet new umbraco-extension(default) and verify CPM output with CentralPackageFloatingVersionsEnabled
  • Verify dotnet build succeeds for generated projects in both modes

@NguyenThuyLan NguyenThuyLan marked this pull request as draft February 5, 2026 07:23
@AndyButland
Copy link
Copy Markdown
Contributor

This looks good @NguyenThuyLan, but I'm having trouble testing it. I think it's a problem on my side, as I have the same problem when I test from main. But can you see what I'm missing please?

  • From the root of the solution I'm running dotnet pack -c Release -o "c:\repos\nuget\"
  • Then from a folder where I want to install the test site I'm running:
dotnet new uninstall Umbraco.Templates
dotnet new install "c:\repos\nuget\Umbraco.Templates.17.3.0--rc.preview.26.gdfb46be.nupkg"
dotnet new umbraco --name Test17
cd .\Test17\

Here I add a NuGet.config file with:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear/>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="Local Feed" value="c:\repos\nuget\" />
  </packageSources>

  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>

</configuration>
  • And then dotnet run

Umbraco will then build and run, but I don't get the install screen come up and all static assets requested are returning 404.

@NguyenThuyLan
Copy link
Copy Markdown
Contributor Author

NguyenThuyLan commented Feb 6, 2026

Oh, I got the same issue, @AndyButland the reason is that you forgot to run npm ci && npm run build:for:cms for Umbraco.Web.UI.Client and npm run build for Umbraco.Web.UI.Login.

Follow these steps:

  1. Check the wwwroot\umbraco folder in Umbraco.Cms.StaticAssets to see if there are two folders named backoffice and login. If so, delete them and run the above commands again for Client and Login project.
  2. These two commands will re-render the new data for the backoffice and login folders.
  3. Run again dotnet pack -c Release -o "c:\repos\nuget\"
  4. Install the template adn then install a new project from the template. It will then load CSS and JS files successfully

@NguyenThuyLan NguyenThuyLan marked this pull request as ready for review February 6, 2026 06:54
@AndyButland
Copy link
Copy Markdown
Contributor

Thanks @NguyenThuyLan - I still couldn't get it working from a local dotnet pack but I realised I could download the NuGet files built as part of this PR, so I did that. And can confirm it all works as expected. The instructions on how to use and manage packages using CPM are very good too.

Let's pause to get @LottePitcher and @nul800sebastiaan's feedback on whether this should be applied to the extension template too.

As you noted:

I only added CPM to UmbracoProject, not UmbracoExtension. This avoids potential merge conflicts if users add an extension project to an existing Umbraco solution.

For new projects, and consistency though, it would make sense to use the Directory.Packages.props approach in the extensions template too.

From my side I just wondered if this should be (or could be?) an option - so the user of the template has the option to decide which package management approach they want. Maybe you could consider how feasible that is.

@NguyenThuyLan
Copy link
Copy Markdown
Contributor Author

@AndyButland , Oh I think that's a good idea. What about adding a PackageManagement parameter with two choices

  • Traditional (default): Package versions in .csproj
  • Central: Uses Directory.Packages.props
    Then the user can choose how to use CPM by running:
    dotnet new umbraco-extension -n MyExtension -P Central

@AndyButland
Copy link
Copy Markdown
Contributor

Let's try it - at least see if it works and doesn't make the template too complicated. It should consistent for the project and extension template though - so the option should exit for both.

Sounds to me that it's nice to be an option, and also doesn't "break" anything for people that are using it.

* Of course it's not breaking in the normal sense, as templates are for new projects, but it might change expectations for people using it, or new projects spun up on Umbraco Cloud, if we make CPM the default.

@NguyenThuyLan NguyenThuyLan changed the title Add Central Package Management (CPM) support to Umbraco Templates Templates: Add optional Central Package Management support to UmbracoProject and UmbracoExtension templates Feb 10, 2026
@NguyenThuyLan
Copy link
Copy Markdown
Contributor Author

I updated my PR and also the description to add this parameter option.
@AndyButland

Copy link
Copy Markdown
Contributor

@AndyButland AndyButland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like that this is an option now @NguyenThuyLan, and consistent for both templates.

I think we should align the naming of the parameter with other ones, and ensure it's exposed to the CLI. So we have -p and --package-management (aligning for example with -da and --use-delivery-api in casing),

templates/UmbracoProject/.template.config/dotnetcli.host.json — add entry in symbolInfo:

"PackageManagement": {
   "longName": "package-management",
   "shortName": "pm"
 }

templates/UmbracoExtension/.template.config/dotnetcli.host.json — same entry:

 "PackageManagement": {
   "longName": "package-management",
   "shortName": "pm"
 }

I think "Traditional" as a name might not be the best (someone unfamiliar with CPM may not understand what "traditional" means in this context). Shall we go with "PerProject" instead?

Although the information in readme.md is useful, I think we can remove it now we've made CPM an option. We can safely assume that someone opting into this will be familiar with the feature. Also, as we are only explaining this single feature and not the template as a whole, it sems a bit odd to include.

@AndyButland
Copy link
Copy Markdown
Contributor

All looks good to me now, thanks @NguyenThuyLan.

@nul800sebastiaan and @LottePitcher - as you raised and/or had comments on the discussion that led to this update, before we merge this, please could you have a look over to make sure it meets your expectations?

@LottePitcher
Copy link
Copy Markdown
Contributor

There is an issue at the moment if you call the template with the combination of -pm Central -r LTS - i.e. central package management whilst specifying to use the LTS release.

If you do that, then Directory.Packages.props is generated as:

<Project>
  <PropertyGroup>
    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
  </PropertyGroup>
  <ItemGroup>
    <PackageVersion Include="Umbraco.Cms" Version="17.*" />
    <PackageVersion Include="Umbraco.Cms.DevelopmentMode.Backoffice" Version="17.*" />
    <PackageVersion Include="Microsoft.ICU.ICU4C.Runtime" Version="72.1.0.3" />
  </ItemGroup>
</Project>

This fails as floating versions aren't allowed with CPM:

error NU1011: The following PackageVersion items cannot specify a floating version: 
Umbraco.Cms, Umbraco.Cms.DevelopmentMode.Backoffice. 
For more information on how to enable this functionality for projects using Central Package Management, visit https://aka.ms/nu1011

Now whether anyone would actually do this combination I don't know.

It's fixed by adding to Directory.Packages.props this line:

<CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled> to the file

@NguyenThuyLan I can see you have already added this flag to the file in the Extensions template.

Should we enable floating versions on the Umbraco project template too? Or let people figure their own work around if they do choose this combination and generate the error?

@AndyButland
Copy link
Copy Markdown
Contributor

Should we enable floating versions on the Umbraco project template too? Or let people figure their own work around if they do choose this combination and generate the error?

For the project template I think we have to do everything we can that this "just works". The extension is for more advanced developers, who perhaps can figure things out, but the project one is the way to install Umbraco for everyone.

So I think this either has to work with floating versions - which would be ideal - or we install specific versions of 17 (and have to make sure we update the template with the latest 17 version every time we release an update of that major).

@NguyenThuyLan
Copy link
Copy Markdown
Contributor Author

Thank you @LottePitcher for pointing that out.
I have updated the template.json and Directory.Packages.props files. The project will be created using CPM by default.
Description of this PR was updated, too.

@AndyButland
Copy link
Copy Markdown
Contributor

I realise I'm not seeing the option presented for selection when I try to use the template in Visual Studio @NguyenThuyLan - I would have expected to see it here:

image

It looks like entries in the two ide.host.json files are missing.

@AndyButland AndyButland reopened this Feb 13, 2026
Copy link
Copy Markdown
Contributor

@AndyButland AndyButland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works nicely from the command line - I've created projects with both options and they are setup as expected and build and run fine.

I realise I'm not seeing the option presented for selection when I try to use the template in Visual Studio though @NguyenThuyLan - I would have expected to see it here:

image

It looks like entries in the two ide.host.json files are missing.

@NguyenThuyLan
Copy link
Copy Markdown
Contributor Author

Yes, I updated ide.host.json files, now we can choose Package Version Management in Visual studio when creating projects
image

Copy link
Copy Markdown
Contributor

@AndyButland AndyButland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good and works nicely now @LanThuyNguyen - I've tested the various configurations via the CLI and IDE, I'm seeing the expected projects generated, and have verified that they build.

@AndyButland AndyButland enabled auto-merge (squash) February 26, 2026 10:48
@AndyButland AndyButland merged commit 0780c22 into main Feb 26, 2026
26 checks passed
@AndyButland AndyButland deleted the v17/implement-cpm branch February 26, 2026 13:33
alexsee added a commit to alexsee/umbraco-container that referenced this pull request Apr 9, 2026
Updated
[Umbraco.Cms.Persistence.Sqlite](https://github.com/umbraco/Umbraco-CMS)
from 17.2.2 to 17.3.0.

<details>
<summary>Release notes</summary>

_Sourced from [Umbraco.Cms.Persistence.Sqlite's
releases](https://github.com/umbraco/Umbraco-CMS/releases)._

## 17.3.0

## Upgrade Notes

In 17.3 we have upgraded our dependency on `MailKit` to 4.15.1. This is
a minor version update, but we found a few changes we had to make in
core to accommodate changes to nullability constraints. Unless using
methods of this library, or it's transitive dependency `MimeKit`, it's
unlikely projects will be affected. The update is necessary though, as
the version we previously depended on now has a security vulnerability
raised against it.

We have made a change to how we handle redirects which brings a
significant performance improvement for publish time on large sites,
when documents with many descendent nodes are published. If you have
custom URL providers you should review this change, as there are some
[very rare
cases](umbraco/Umbraco-CMS#22091 (comment))
where you'll need to adjust to ensure descendent redirects are correctly
handled.

Note also that we now auto-generate HMAC secret key for new installs.
This has been applied to make Umbraco more secure by default, but it's
not been forced for upgrades.

## What's Changed Since 17.3.0-rc3

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.3.0-rc3...release-17.3.0

## What's Changed Since 17.3.0-rc2

### 📦 Dependencies

* Dependencies: Update Microsoft packages to latest patch and fix
HybridCache ParseFault with Redis by @​AndyButland in
umbraco/Umbraco-CMS#22278

### 🐛 Bug Fixes

* Examine: Fix DocumentUrlService not initialized during Examine
indexing after package upgrade by @​AndyButland in
umbraco/Umbraco-CMS#22243
* Unattended Upgrades: Rebuild routing caches after background
migrations to fix unrouteable document URLs by @​AndyButland in
umbraco/Umbraco-CMS#22269
* Migrations: Fix NPoco auto-select breaking re-trust FK migration by
@​AndyButland in umbraco/Umbraco-CMS#22270

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.3.0-rc2...release-17.3.0-rc3

## What's Changed Since 17.3.0-rc1

### 🐛 Bug Fixes
* Migrations: Fix re-trust constraints migration targeting non-Umbraco
tables and transaction failure (closes #​22227) by @​AndyButland in
umbraco/Umbraco-CMS#22229
* Distributed Locking: Add ROWLOCK hint to prevent cross-row contention
on umbracoLock table (closes #​22113) by @​AndyButland in
umbraco/Umbraco-CMS#22126
* Application URLs: Prevent back office hosts being overwritten in a
shared database setup (closes #​16741) by @​matthewcare in
umbraco/Umbraco-CMS#22160
* Migrations: Fix property detection for invariant content types with
culture-varying compositions (closes #​22159) by @​AndyButland in
umbraco/Umbraco-CMS#22167
* Migrations: Fix package migrations not running after fresh install
with packages (closes #​22202) by @​AndyButland in
umbraco/Umbraco-CMS#22204

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.3.0-rc...release-17.3.0-rc2

## What's Changed Since the Previous Version (17.2.2)

### 🙌 Notable Changes
* Templates: Add optional Central Package Management support to
UmbracoProject and UmbracoExtension templates by @​NguyenThuyLan in
umbraco/Umbraco-CMS#21641
* Service registration: Allow running Umbraco with different
combinations of backoffice, website and delivery API (closes #​21622) by
@​AndyButland in umbraco/Umbraco-CMS#21630
* Imaging Configuration: Auto-generate HMAC secret key for new installs
by @​AndyButland in umbraco/Umbraco-CMS#21976
* Migrations: Run unattended upgrades in background, add
liveness/readiness health probes (closes #​21987) by @​AndyButland in
umbraco/Umbraco-CMS#22020

### 💥 Breaking Changes
* Dependencies: Update MailKit to 4.15.1 by @​AndyButland in
umbraco/Umbraco-CMS#22028

### 📦 Dependencies
* Bump lodash from 4.17.21 to 4.17.23 in
/tests/Umbraco.Tests.AcceptanceTest in the npm_and_yarn group across 1
directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21519
 ... (truncated)

## 17.3.0-rc3

## Upgrade Notes

In 17.3 we have upgraded our dependency on `MailKit` to 4.15.1. This is
a minor version update, but we found a few changes we had to make in
core to accommodate changes to nullability constraints. Unless using
methods of this library, or it's transitive dependency `MimeKit`, it's
unlikely projects will be affected. The update is necessary though, as
the version we previously depended on now has a security vulnerability
raised against it.

We have made a change to how we handle redirects which brings a
significant performance improvement for publish time on large sites,
when documents with many descendent nodes are published. If you have
custom URL providers you should review this change, as there are some
[very rare
cases](umbraco/Umbraco-CMS#22091 (comment))
where you'll need to adjust to ensure descendent redirects are correctly
handled.

Note also that we now auto-generate HMAC secret key for new installs.
This has been applied to make Umbraco more secure by default, but it's
not been forced for upgrades.

## What's Changed Since 17.3.0-rc2

### 📦 Dependencies

* Dependencies: Update Microsoft packages to latest patch and fix
HybridCache ParseFault with Redis by @​AndyButland in
umbraco/Umbraco-CMS#22278

### 🐛 Bug Fixes

* Examine: Fix DocumentUrlService not initialized during Examine
indexing after package upgrade by @​AndyButland in
umbraco/Umbraco-CMS#22243
* Unattended Upgrades: Rebuild routing caches after background
migrations to fix unrouteable document URLs by @​AndyButland in
umbraco/Umbraco-CMS#22269
* Migrations: Fix NPoco auto-select breaking re-trust FK migration by
@​AndyButland in umbraco/Umbraco-CMS#22270

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.3.0-rc2...release-17.3.0-rc3

## What's Changed Since 17.3.0-rc1

### 🐛 Bug Fixes
* Migrations: Fix re-trust constraints migration targeting non-Umbraco
tables and transaction failure (closes #​22227) by @​AndyButland in
umbraco/Umbraco-CMS#22229
* Distributed Locking: Add ROWLOCK hint to prevent cross-row contention
on umbracoLock table (closes #​22113) by @​AndyButland in
umbraco/Umbraco-CMS#22126
* Application URLs: Prevent back office hosts being overwritten in a
shared database setup (closes #​16741) by @​matthewcare in
umbraco/Umbraco-CMS#22160
* Migrations: Fix property detection for invariant content types with
culture-varying compositions (closes #​22159) by @​AndyButland in
umbraco/Umbraco-CMS#22167
* Migrations: Fix package migrations not running after fresh install
with packages (closes #​22202) by @​AndyButland in
umbraco/Umbraco-CMS#22204

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.3.0-rc...release-17.3.0-rc2

## What's Changed Since the Previous Version (17.2.2)

### 🙌 Notable Changes
* Templates: Add optional Central Package Management support to
UmbracoProject and UmbracoExtension templates by @​NguyenThuyLan in
umbraco/Umbraco-CMS#21641
* Service registration: Allow running Umbraco with different
combinations of backoffice, website and delivery API (closes #​21622) by
@​AndyButland in umbraco/Umbraco-CMS#21630
* Imaging Configuration: Auto-generate HMAC secret key for new installs
by @​AndyButland in umbraco/Umbraco-CMS#21976
* Migrations: Run unattended upgrades in background, add
liveness/readiness health probes (closes #​21987) by @​AndyButland in
umbraco/Umbraco-CMS#22020

### 💥 Breaking Changes
* Dependencies: Update MailKit to 4.15.1 by @​AndyButland in
umbraco/Umbraco-CMS#22028

### 📦 Dependencies
* Bump lodash from 4.17.21 to 4.17.23 in
/tests/Umbraco.Tests.AcceptanceTest in the npm_and_yarn group across 1
directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21519
* Bump the npm_and_yarn group across 2 directories with 2 updates by
@​dependabot[bot] in umbraco/Umbraco-CMS#21754
* Bump qs from 6.14.1 to 6.14.2 in /src/Umbraco.Web.UI.Client in the
npm_and_yarn group across 1 directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21755
* Dependencies: Bumps @​umbraco-ui/uui from 1.17.0 to 1.17.1 by
@​iOvergaard in umbraco/Umbraco-CMS#22029
* Dependencies: Updates @​umbraco-ui/uui to 1.17.2 to fix multiple
folder drag-and-drop failing (closes #​21837) by @​iOvergaard in
umbraco/Umbraco-CMS#21886
 ... (truncated)

## 17.3.0-rc2

## Upgrade Notes

In 17.3 we have upgraded our dependency on `MailKit` to 4.15.1. This is
a minor version update, but we found a few changes we had to make in
core to accommodate changes to nullability constraints. Unless using
methods of this library, or it's transitive dependency `MimeKit`, it's
unlikely projects will be affected. The update is necessary though, as
the version we previously depended on now has a security vulnerability
raised against it.

We have made a change to how we handle redirects which brings a
significant performance improvement for publish time on large sites,
when documents with many descendent nodes are published. If you have
custom URL providers you should review this change, as there are some
[very rare
cases](umbraco/Umbraco-CMS#22091 (comment))
where you'll need to adjust to ensure descendent redirects are correctly
handled.

Note also that we now auto-generate HMAC secret key for new installs.
This has been applied to make Umbraco more secure by default, but it's
not been forced for upgrades.

## What's Changed Since 17.3.0-rc1

### 🐛 Bug Fixes
* Migrations: Fix re-trust constraints migration targeting non-Umbraco
tables and transaction failure (closes #​22227) by @​AndyButland in
umbraco/Umbraco-CMS#22229
* Distributed Locking: Add ROWLOCK hint to prevent cross-row contention
on umbracoLock table (closes #​22113) by @​AndyButland in
umbraco/Umbraco-CMS#22126
* Application URLs: Prevent back office hosts being overwritten in a
shared database setup (closes #​16741) by @​matthewcare in
umbraco/Umbraco-CMS#22160
* Migrations: Fix property detection for invariant content types with
culture-varying compositions (closes #​22159) by @​AndyButland in
umbraco/Umbraco-CMS#22167
* Migrations: Fix package migrations not running after fresh install
with packages (closes #​22202) by @​AndyButland in
umbraco/Umbraco-CMS#22204

**Full Changelog**:
umbraco/Umbraco-CMS@release-17.3.0-rc...release-17.3.0-rc2

## What's Changed Since the Previous Version (17.2.2)

### 🙌 Notable Changes
* Templates: Add optional Central Package Management support to
UmbracoProject and UmbracoExtension templates by @​NguyenThuyLan in
umbraco/Umbraco-CMS#21641
* Service registration: Allow running Umbraco with different
combinations of backoffice, website and delivery API (closes #​21622) by
@​AndyButland in umbraco/Umbraco-CMS#21630
* Imaging Configuration: Auto-generate HMAC secret key for new installs
by @​AndyButland in umbraco/Umbraco-CMS#21976
* Migrations: Run unattended upgrades in background, add
liveness/readiness health probes (closes #​21987) by @​AndyButland in
umbraco/Umbraco-CMS#22020

### 💥 Breaking Changes
* Dependencies: Update MailKit to 4.15.1 by @​AndyButland in
umbraco/Umbraco-CMS#22028

### 📦 Dependencies
* Bump lodash from 4.17.21 to 4.17.23 in
/tests/Umbraco.Tests.AcceptanceTest in the npm_and_yarn group across 1
directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21519
* Bump the npm_and_yarn group across 2 directories with 2 updates by
@​dependabot[bot] in umbraco/Umbraco-CMS#21754
* Bump qs from 6.14.1 to 6.14.2 in /src/Umbraco.Web.UI.Client in the
npm_and_yarn group across 1 directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21755
* Dependencies: Bumps @​umbraco-ui/uui from 1.17.0 to 1.17.1 by
@​iOvergaard in umbraco/Umbraco-CMS#22029
* Dependencies: Updates @​umbraco-ui/uui to 1.17.2 to fix multiple
folder drag-and-drop failing (closes #​21837) by @​iOvergaard in
umbraco/Umbraco-CMS#21886
* Backoffice: Update vite from 7.1.11 to 7.3.1 by @​iOvergaard in
umbraco/Umbraco-CMS#22065
* Dependencies: Update server-side dependencies to latest patch or minor
releases by @​AndyButland in
umbraco/Umbraco-CMS#21860

### 🚤 Performance
* Performance: Implement key-based caching for data type and template
repositories by @​AndyButland in
umbraco/Umbraco-CMS#21280
* Management API: Optimize collection view performance by eliminating
N+1 patterns by @​AndyButland in
umbraco/Umbraco-CMS#21684
* Performance: Optimize handling of content type updates by @​kjac in
umbraco/Umbraco-CMS#21910
* Backoffice Performance: Add inflight request deduplication to item
data request managers by @​madsrasmussen in
umbraco/Umbraco-CMS#21767
* URL and Alias Caches: Optimize for invariant documents by
@​AndyButland in umbraco/Umbraco-CMS#21558
* Custom Views: Prevent re-rendering Block Views and Properties by
@​rickbutterfield in umbraco/Umbraco-CMS#21186
* Core: Minimize await to a single JS cycle (refactor #​21186) by
@​nielslyngsoe in umbraco/Umbraco-CMS#22074
* Auth: Skip /token refresh when access token is still valid by
@​iOvergaard in umbraco/Umbraco-CMS#22087
* Memory Management: Dispose `IDisposable` resources correctly in four
internal classes by @​AndyButland in
umbraco/Umbraco-CMS#22014
* Redirect Tracking: Fix segment change detection and optimise
descendant traversal (closes #​22082) by @​AndyButland in
umbraco/Umbraco-CMS#22091
 ... (truncated)

## 17.3.0-rc

## Upgrade Notes

In 17.3 we have upgraded our dependency on `MailKit` to 4.15.1. This is
a minor version update, but we found a few changes we had to make in
core to accommodate changes to nullability constraints. Unless using
methods of this library, or it's transitive dependency `MimeKit`, it's
unlikely projects will be affected. The update is necessary though, as
the version we previously depended on now has a security vulnerability
raised against it.

We have made a change to how we handle redirects which brings a
significant performance improvement for publish time on large sites,
when documents with many descendent nodes are published. If you have
custom URL providers you should review this change, as there are some
[very rare
cases](umbraco/Umbraco-CMS#22091 (comment))
where you'll need to adjust to ensure descendent redirects are correctly
handled.

Note also that we now auto-generate HMAC secret key for new installs.
This has been applied to make Umbraco more secure by default, but it's
not been forced for upgrades.

## What's Changed

### 🙌 Notable Changes
* Templates: Add optional Central Package Management support to
UmbracoProject and UmbracoExtension templates by @​NguyenThuyLan in
umbraco/Umbraco-CMS#21641
* Service registration: Allow running Umbraco with different
combinations of backoffice, website and delivery API (closes #​21622) by
@​AndyButland in umbraco/Umbraco-CMS#21630
* Imaging Configuration: Auto-generate HMAC secret key for new installs
by @​AndyButland in umbraco/Umbraco-CMS#21976
* Migrations: Run unattended upgrades in background, add
liveness/readiness health probes (closes #​21987) by @​AndyButland in
umbraco/Umbraco-CMS#22020

### 💥 Breaking Changes
* Dependencies: Update MailKit to 4.15.1 by @​AndyButland in
umbraco/Umbraco-CMS#22028

### 📦 Dependencies
* Bump lodash from 4.17.21 to 4.17.23 in
/tests/Umbraco.Tests.AcceptanceTest in the npm_and_yarn group across 1
directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21519
* Bump the npm_and_yarn group across 2 directories with 2 updates by
@​dependabot[bot] in umbraco/Umbraco-CMS#21754
* Bump qs from 6.14.1 to 6.14.2 in /src/Umbraco.Web.UI.Client in the
npm_and_yarn group across 1 directory by @​dependabot[bot] in
umbraco/Umbraco-CMS#21755
* Dependencies: Bumps @​umbraco-ui/uui from 1.17.0 to 1.17.1 by
@​iOvergaard in umbraco/Umbraco-CMS#22029
* Dependencies: Updates @​umbraco-ui/uui to 1.17.2 to fix multiple
folder drag-and-drop failing (closes #​21837) by @​iOvergaard in
umbraco/Umbraco-CMS#21886
* Backoffice: Update vite from 7.1.11 to 7.3.1 by @​iOvergaard in
umbraco/Umbraco-CMS#22065
* Dependencies: Update server-side dependencies to latest patch or minor
releases by @​AndyButland in
umbraco/Umbraco-CMS#21860

### 🚤 Performance
* Performance: Implement key-based caching for data type and template
repositories by @​AndyButland in
umbraco/Umbraco-CMS#21280
* Management API: Optimize collection view performance by eliminating
N+1 patterns by @​AndyButland in
umbraco/Umbraco-CMS#21684
* Performance: Optimize handling of content type updates by @​kjac in
umbraco/Umbraco-CMS#21910
* Backoffice Performance: Add inflight request deduplication to item
data request managers by @​madsrasmussen in
umbraco/Umbraco-CMS#21767
* URL and Alias Caches: Optimize for invariant documents by
@​AndyButland in umbraco/Umbraco-CMS#21558
* Custom Views: Prevent re-rendering Block Views and Properties by
@​rickbutterfield in umbraco/Umbraco-CMS#21186
* Core: Minimize await to a single JS cycle (refactor #​21186) by
@​nielslyngsoe in umbraco/Umbraco-CMS#22074
* Auth: Skip /token refresh when access token is still valid by
@​iOvergaard in umbraco/Umbraco-CMS#22087
* Memory Management: Dispose `IDisposable` resources correctly in four
internal classes by @​AndyButland in
umbraco/Umbraco-CMS#22014
* Redirect Tracking: Fix segment change detection and optimise
descendant traversal (closes #​22082) by @​AndyButland in
umbraco/Umbraco-CMS#22091


### 🌈 Accessibility Improvements
* Entity Actions: Adds a descriptive title to the first action so you
know what it does by @​iOvergaard in
umbraco/Umbraco-CMS#21739
* Search field: Added aria-label and name to search input for
accessibility (closes #​21938) by @​andreaslborg in
umbraco/Umbraco-CMS#21962
* List view: Added labels entity bulk action buttons by @​andreaslborg
in umbraco/Umbraco-CMS#21964
* Accessibility: Add title attributes to buttons in block list entry and
property editor UI by @​manutdkid77 in
umbraco/Umbraco-CMS#21842
* Accessibility: Add tooltips to block grid entry actions by
@​manutdkid77 in umbraco/Umbraco-CMS#21958
* Accessibility: Added `title` attribute for icon in content types by
@​TechPdo in umbraco/Umbraco-CMS#21956

### 🚀 New Features
 ... (truncated)

Commits viewable in [compare
view](umbraco/Umbraco-CMS@release-17.2.2...release-17.3.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Umbraco.Cms.Persistence.Sqlite&package-manager=nuget&previous-version=17.2.2&new-version=17.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexander Seeliger <alexsee@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants